package empresa;

import endereco.Endereco;
import java.util.List;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import setorEmpresa.SetorEmpresa;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Empresa generated by hbm2java
 */
@Entity
@Table(name="empresa"
    ,schema="public"
)
public class Empresa  implements java.io.Serializable {


     private int idEmpresa;
     private Endereco endereco;
     private String cnpj;
     private String descricaoEmpresa;
     private String rasaoSocial;
     private String nomeFantasia;
     private String fone;
     private boolean statusEmpresa;
     private List<SetorEmpresa> setorEmpresas;

    public Empresa() {
    }

	
    public Empresa(int idEmpresa) {
        this.idEmpresa = idEmpresa;
    }
    public Empresa(int idEmpresa, Endereco endereco, String cnpj, String descricaoEmpresa, String rasaoSocial, String nomeFantasia, String fone, boolean statusEmpresa, List<SetorEmpresa> setorEmpresas) {
       this.idEmpresa = idEmpresa;
       this.endereco = endereco;
       this.cnpj = cnpj;
       this.descricaoEmpresa = descricaoEmpresa;
       this.rasaoSocial = rasaoSocial;
       this.nomeFantasia = nomeFantasia;
       this.fone = fone;
       this.statusEmpresa = statusEmpresa;
       this.setorEmpresas = setorEmpresas;
    }
   
    @Id 
    @Column(name="id_empresa", unique=true, nullable=false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int getIdEmpresa() {
        return this.idEmpresa;
    }
    
    public void setIdEmpresa(int idEmpresa) {
        this.idEmpresa = idEmpresa;
    }
    
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "id_endereco")
    public Endereco getEndereco() {
        return this.endereco;
    }
    
    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }
    
    @Column(name="cnpj", length=15)
    public String getCnpj() {
        return this.cnpj;
    }
    
    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }
    
    @Column(name="descricao_empresa", length=100)
    public String getDescricaoEmpresa() {
        return this.descricaoEmpresa;
    }
    
    public void setDescricaoEmpresa(String descricaoEmpresa) {
        this.descricaoEmpresa = descricaoEmpresa;
    }
    
    @Column(name="rasao_social", length=150)
    public String getRasaoSocial() {
        return this.rasaoSocial;
    }
    
    public void setRasaoSocial(String rasaoSocial) {
        this.rasaoSocial = rasaoSocial;
    }
    
    @Column(name="nome_fantasia", length=150)
    public String getNomeFantasia() {
        return this.nomeFantasia;
    }
    
    public void setNomeFantasia(String nomeFantasia) {
        this.nomeFantasia = nomeFantasia;
    }
    
    @Column(name="fone", length=15)
    public String getFone() {
        return this.fone;
    }
    
    public void setFone(String fone) {
        this.fone = fone;
    }
    
    @Column(name="status_empresa", length=15)
    public boolean getStatusEmpresa() {
        return this.statusEmpresa;
    }
    
    public void setStatusEmpresa(boolean statusEmpresa) {
        this.statusEmpresa = statusEmpresa;
    }
    
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="empresa")
    public List<SetorEmpresa> getSetorEmpresas() {
        return this.setorEmpresas;
    }
    
    public void setSetorEmpresas(List<SetorEmpresa> setorEmpresas) {
        this.setorEmpresas = setorEmpresas;
    }




}


